#ifndef __ALMACENAMIENTO_DOC_FREC_H__
#define __ALMACENAMIENTO_DOC_FREC_H__

#include <iostream>
#include <string.h>
#include <sstream>

#include "global.h"
#include "cGamma.h"
#include "RegistroDocFrec.h"
#include "RegistroDocPeso.h"

#define NOMBRE_ARCHIVO_DOCFREC "docfrec"

using namespace std;

typedef std::list<RegistroDistancias *> tListaDocDistancias;

class AlmacenamientoDocFrec 
{
private:
	FILE* archivo;
	static int codigoArchivo;
	static int codigoArchivoNivel1;
	char * nombreArchivoDocFrecu;
	bool destroy;
	char modo[2];	

public:
	AlmacenamientoDocFrec(char * modo, int nivel, bool parcial = false);
	virtual ~AlmacenamientoDocFrec();
	
	void abrirArchivo ();
	int escribir(tListaDocDistancias * lista, bool conPeso);
	tListaDocDistancias * leer(int offset, int frecuencia, bool conPeso);
	static void resetearCodigoArchivo();
	static void resetearCodigoArchivoNivel1();
	void setDestroy();
	void renombrarArchivoFinal();
	void renombrarArchivoANivel(char * nivel);
};

#endif
